getting windows versions
Code:
void getWindowsVersion(void)
{
    OSVERSIONINFO osVer;
   
    ZeroMemory(&osVer, sizeof(osVer));
    osVer.dwOSVersionInfoSize = sizeof(osVer);
       
    GetVersionEx(&osVer);

   if (VER_PLATFORM_WIN32_WINDOWS)
   {
      if (osVer.dwMajorVersion == 4)
      {
         if (!osVer.dwMinorVersion)
            cCon.echo("&gOperating system: Microsoft Windows 95");
         else if (osVer.dwMinorVersion == 10)
            cCon.echo("&gOperating system: Microsoft Windows 98");
         else if (osVer.dwMajorVersion == 4 && osVer.dwMinorVersion == 90)
            cCon.echo("&gOperating system: Microsoft Windows ME");
      }
   }
   
   if (VER_PLATFORM_WIN32_NT)
   {
      if (osVer.dwMajorVersion == 5)
      {
         if (!osVer.dwMinorVersion)
            cCon.echo("&gOperating system: Microsoft Windows 2000");
         else if (osVer.dwMinorVersion == 1)
            cCon.echo("&gOperating system: Microsoft Windows XP");
      }
      else if (osVer.dwMajorVersion == 6 && !osVer.dwMinorVersion)
         cCon.echo("&gOperating system: Microsoft Windows: Vista");
      else
         cCon.echo("&gOperating system: N/A");
   }
}


getting cpu model
Code:
void getCPUmodel(void)
{
   SYSTEM_INFO sysInfo;
    GetSystemInfo(&sysInfo);

   cCon.echo("&gCPU(s): %u", sysInfo.dwNumberOfProcessors);

   if (sysInfo.dwProcessorType ==  PROCESSOR_INTEL_386)
      cCon.echo("&gCPU model: INTEL x386");
   else if (sysInfo.dwProcessorType ==  PROCESSOR_INTEL_486)
      cCon.echo("&gCPU model: INTEL x486");
   else if (sysInfo.dwProcessorType ==  PROCESSOR_INTEL_PENTIUM)
      cCon.echo("&gCPU model: INTEL Pentium family");
}


getting cpu speed
Code:
void getCPUfrequency(void)
{
   HKEY hKey = NULL;
   long lResult;
   char cBuf[100];
   DWORD dwType, dwSize = sizeof(DWORD), value;

   lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0",0, KEY_QUERY_VALUE,&hKey);

   if (lResult != ERROR_SUCCESS)
      return;

   dwType = REG_DWORD;
   lResult = RegQueryValueEx(hKey, "~MHz", NULL, &dwType, (unsigned char *)&value, &dwSize);

   if (lResult != ERROR_SUCCESS)   
      return;

   sprintf(cBuf,"&gCPU speed: %uMHz",value);

   cCon.echo(cBuf);

   RegCloseKey(hKey);
}


a void to call it all
Code:
void getComputerInfo(void)
{
   getCPUmodel();
   getCPUfrequency();
   getWindowsVersion();
}


now call it in ur bOnlyHook under patchinterpclrate, or wherever

Code:
getComputerInfo();


have fun !

Credits: ?
